home *** CD-ROM | disk | FTP | other *** search
/ Speccy ClassiX 1998 / Speccy ClassiX 98.iso / amiga_system / the_aminet / dev / gcc / ixemulsrc.lha / ixemul-41.4 / library / hwck.c < prev    next >
C/C++ Source or Header  |  1994-12-26  |  2KB  |  81 lines

  1. /*
  2.  *  This file is part of ixemul.library for the Amiga.
  3.  *  Copyright (C) 1994  Rafael W. Luebbert
  4.  *
  5.  *  This library is free software; you can redistribute it and/or
  6.  *  modify it under the terms of the GNU Library General Public
  7.  *  License as published by the Free Software Foundation; either
  8.  *  version 2 of the License, or (at your option) any later version.
  9.  *
  10.  *  This library is distributed in the hope that it will be useful,
  11.  *  but WITHOUT ANY WARRANTY; without even the implied warranty of
  12.  *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
  13.  *  Library General Public License for more details.
  14.  *
  15.  *  You should have received a copy of the GNU Library General Public
  16.  *  License along with this library; if not, write to the Free
  17.  *  Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  18.  *
  19.  *  $Id: hwck.c,v 1.3 1994/10/18 09:12:51 rluebbert Exp $
  20.  *
  21.  *  $Log: hwck.c,v $
  22.  * Revision 1.3  1994/10/18  09:12:51  rluebbert
  23.  * Check for math emulation code (881 || 882) in 040s.  Assume no FPU otherwise.
  24.  * No 040 FPU instruction support yet.
  25.  *
  26.  * Revision 1.2  1994/06/22  14:56:04  rluebbert
  27.  * added struct ExecBase **4
  28.  *
  29.  * Revision 1.1  1994/06/19  15:11:39  rluebbert
  30.  * Initial revision
  31.  *
  32.  */
  33.  
  34. #include <exec/execbase.h>
  35.  
  36. struct ExecBase *SysBase;
  37.  
  38. int
  39. check_hardware (void)
  40. {
  41. SysBase = *(struct ExecBase **)4;
  42. #if defined (m68020) || defined (m68030) || defined (m68040) || defined (m68060)
  43. if ( (SysBase->AttnFlags & AFF_68020) || (SysBase->AttnFlags & AFF_68030) ||
  44.     (SysBase->AttnFlags & AFF_68040) );
  45. else
  46.    {
  47.    ix_panic("This ixemul version requires a 68020/30/40.");
  48.    return 0;
  49.    }
  50. #endif
  51. #ifdef __HAVE_68881
  52. if( (SysBase->AttnFlags & AFF_68881) || (SysBase->AttnFlags & AFF_68882));
  53. else
  54.     {
  55.     if( (SysBase->AttnFlags & AFF_68040)
  56.         ix_panic("68040 math emulation code not found.");
  57.     else
  58.         ix_panic("This ixemul version requires an FPU.");
  59.     return 0;
  60.     }
  61. #endif
  62. return 1;
  63. }
  64.  
  65. int betterthan68000()
  66. {
  67. SysBase = *(struct ExecBase **)4;
  68. if ( (SysBase->AttnFlags & AFF_68020) || (SysBase->AttnFlags & AFF_68030) ||
  69.     (SysBase->AttnFlags & AFF_68040) )
  70.     return 1;
  71. return 0;
  72. }
  73.  
  74. int gotanfpu()
  75. {
  76. SysBase = *(struct ExecBase **)4;
  77. if ( (SysBase->AttnFlags & AFF_68881) || (SysBase->AttnFlags & AFF_68882))
  78.     return 1;
  79. return 0;
  80. }
  81.